package com.stylefeng.guns.modular.netcar.model;

import com.alibaba.fastjson.annotation.JSONField;
import com.baomidou.mybatisplus.activerecord.Model;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baomidou.mybatisplus.enums.IdType;
import com.stylefeng.guns.core.validater.Insert;
import com.stylefeng.guns.core.validater.Search;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.util.Date;

@Data
@EqualsAndHashCode(callSuper=true)
@TableName("order_line_comment")
 /**
 * 线路审核意见表
 * @author 张亚林
 * @Date 2018-11-30 14:56
 * @TableField(exist = false) 实现属性与数据库字段不一一对应
 */
public class OrderLineComment extends Model<OrderLineComment> {
    private static final long serialVersionUID = 1L;
    /**
     * 主键id
     * 自动生成后修改成实际的主键 
     */
    protected Serializable pkVal() {
        return this.olcId;
    }
    
    //扩展能查询字段
    @TableField(exist = false)
    @JSONField(serialize = false)
    private String key ;
    //开始日期
    @TableField(exist = false)
    @JSONField(serialize = false)
    private String sdate;
    //截止日期 
    @TableField(exist = false)
    @JSONField(serialize = false)
	private String edate;
    //排序字段
    @TableField(exist = false)
    @JSONField(serialize = false)
	private String  sortField ;
	//排序	
	@TableField(exist = false)
    @JSONField(serialize = false)
	private String sortOrder;

	
    @ApiModelProperty(value = "编号")
    @TableId(value = "olc_id",type = IdType.UUID)
    private String olcId;     //编号

    @ApiModelProperty(value = "线路ID")
    @TableField("ol_id")
    @NotNull(message = "线路ID不能为空!",groups ={ Search.class, Insert.class})
    private String olId;     //线路名称

    @ApiModelProperty(value = "创建人")
    @TableField("create_user")
    private String createUser;     //创建人

    @ApiModelProperty(value = "创建时间")
    @TableField("create_time")
    private Date createTime;     //创建时间

    @ApiModelProperty(value = "更新人")
    @TableField("update_user")
    private String updateUser;     //更新人

    @ApiModelProperty(value = "更新时间")
    @TableField("update_time")
    private Date updateTime;     //更新时间

    @ApiModelProperty(value = "线路审批意见")
    @TableField("appli_comment")
    @NotNull(message = "审批意见不能为空!",groups ={Insert.class})
    private String appliComment;     //线路审批意见

    @ApiModelProperty(value = "审批结果 2：退回 6：审批通过")
    @TableField("appli_state")
    @NotNull(message = "审批结果不能为空!",groups ={Insert.class})
    private String appliState;     //审批结果 2：退回 6：审批通过


}
